package adapter;

public class Setup {
	public static void main(String[] args) {
		// 类适配器--使用对象继承的方式，是静态的定义方式
		ClassAdapter classAdapter = new ClassAdapter();
		System.out.println("ClassAdapter");
		classAdapter.originMethod();
		classAdapter.targetMethod();
		System.out.println("-----------");

		// 对象适配器--使用对象组合的方式，是动态组合的方式。
		Origin origin = new Origin();
		ObjectAdapter objectAdapter = new ObjectAdapter(origin);
		System.out.println("ObjectAdapter");
		objectAdapter.originMethod();
		objectAdapter.targetMethod();
		System.out.println("-----------");
		
		// 接口（缺省）适配器--一个抽象类继承并实现对应的接口，抽象类可以设置缺省，也可以是空的方法，由子类重写。
		InterfaceAdapter interfaceAdapter = new InterfaceAdapter();
		System.out.println("InterfaceAdapter");
		interfaceAdapter.targetMethod();
	}

}
